#ifndef MA_UTF8_H
#define MA_UTF8_H

#include <stdio.h>
#include <string.h>
#include <stdbool.h>

// 辅助函数：计算UTF-8字符的长度
int GetUTF8CharLength(const unsigned char *str, int pos);

// 函数用于找到UTF-8字符的起始位置
int FindStartOfUTF8Char(const unsigned char *str, int pos);

// 函数用于检查指定位置是否是一个有效的UTF-8字符起始位置
bool IsValidUTF8Start(const unsigned char *str, int pos);

// 辅助函数：删除指定位置的UTF-8字符
bool DeleteUTF8CharAtPosition(unsigned char *str, int pos, int len);

// 删除指定位置的UTF-8字符
bool DeleteUTF8Char(unsigned char *str, int pos);

// 删除指定位置前一个字符
bool DeletePrevUTF8Char(unsigned char *str, int pos);

// 删除指定位置后一个字符
bool DeleteNextUTF8Char(unsigned char *str, int pos);

// 找到指定位置的前一个有效UTF-8字符的起始位置
int FindValidStartPos(const unsigned char *str, int pos);

// 找到指定位置的下一个有效UTF-8字符的起始位置
int FindValidEndPos(const unsigned char *str, int pos, int len);

// 计算UTF-8字符串的显示长度
int calculateDisplayLength(const unsigned char *str, int startPos, int endPos, int len);

// 找到满足容器宽度的最大长度的字符串结束位置
int FindEndPosForContainerWidth(const unsigned char *str, int startPos, int containerWidth, int len);

int Test1();

int Test2();

int Test3();

#endif
